﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Modelo;
using System.Data.SqlClient;

namespace BaseDatos
{
    public class BDCliente
    {
        public string coneccionCentral = "Data Source=.\\sqlexpress; Initial Catalog=FarmaciaAurora; Integrated Security=true";
        public string coneccionSucursal1 = "Data Source=.\\sqlexpress; Initial Catalog=FarmaciaAuroraSucursal; Integrated Security=true";
        public string coneccionSucursal2 = "Data Source=.\\sqlexpress; Initial Catalog=FarmaciaAuroraSucursal2; Integrated Security=true";
        
        public void InsertarCliente(Cliente cliente )
        {
            if (cliente != null)
            {
                try
                {
                    SqlConnection canal = new SqlConnection(coneccionSucursal1);
                    SqlCommand comando = canal.CreateCommand();
                    comando.CommandText = "Insert into Cliente(Ci,Apellido,Direccion,Telefono) Values (@ci,@ap,@dir,@tel)";
                    comando.Parameters.AddWithValue("ci", cliente.CI);
                    comando.Parameters.AddWithValue("ap", cliente.Apellido);
                    comando.Parameters.AddWithValue("dir",cliente.Direccion);
                    comando.Parameters.AddWithValue("tel", cliente.Telefono);
                    canal.Open();
                    comando.ExecuteNonQuery();
                }
                catch (Exception)
                {
                    
                    throw;
                }
            }
        }
        public void ModificarCliente(Cliente cliente)
        {
            if (cliente != null)
            {
                try
                {
                    SqlConnection canal = new SqlConnection(coneccionSucursal1);
                    SqlCommand comando = canal.CreateCommand();
                    comando.CommandText = "Update Cliente Apellido=@ap,Direccion=@dir,Telefono=@tel where Ci=@ci";
                    comando.Parameters.AddWithValue("ci", cliente.CI);
                    comando.Parameters.AddWithValue("ap", cliente.Apellido);
                    comando.Parameters.AddWithValue("dir", cliente.Direccion);
                    comando.Parameters.AddWithValue("tel", cliente.Telefono);
                    canal.Open();
                    comando.ExecuteNonQuery();
                }
                catch (Exception)
                {

                    throw;
                }
            }
        }
        public Cliente ObtenerClientePorCI(long ci)
        {
            try
            {
                SqlConnection canal = new SqlConnection(coneccionSucursal1);
                SqlCommand comando = canal.CreateCommand();
                comando.CommandText = "Select * from Cliente where Ci=@ci";
                comando.Parameters.AddWithValue("ci", ci);
                canal.Open();
                SqlDataReader reader = comando.ExecuteReader();
                if (!reader.HasRows)
                {
                    return null;
                }
                Cliente cliente = new Cliente();
                while (reader.Read())
                {
                    cliente.CI = ci;
                    cliente.Apellido = reader["Apellido"].ToString();
                    cliente.Direccion = reader["Direccion"].ToString();
                    cliente.Telefono = Int64.Parse(reader["Telefono"].ToString());
 
                }
                return cliente;

            }
            catch (Exception)
            {

                throw;
            }
       }
        
    }
}
